
#ifndef __IOCP_TCP_CALLBACK_H__
#define __IOCP_TCP_CALLBACK_H__

#include "iocpdef.h"
#ifdef __cplusplus
extern "C" {
#endif

    void tcpio_input_bufcb(STREAMBUFFER * pStream, int bFull, void * pUserData);
    void tcpio_output_bufcb(STREAMBUFFER * pStream, int bFull, void * pUserData);

    void tcpio_event_closecb(IOEVENT * pEvent, DWORD dwEvent, void * pUserData);
    void tcpio_event_readcb(IOEVENT * pEvent, DWORD dwEvent, void * pUserData);
    void tcpio_event_writecb(IOEVENT * pEvent, DWORD dwEvent, void * pUserData);

    void tcpio_complete_read(IOEVENT * pEvent, DWORD dwEvent, void * pUserData);
    void tcpio_complete_write(IOEVENT * pEvent, DWORD dwEvent, void * pUserData);
    void tcpio_complete_accept(IOEVENT * pEvent, DWORD dwEvent, void * pUserData);
    void tcpio_complete_connect(IOEVENT * pEvent, DWORD dwEvent, void * pUserData);

    DWORD tcpio_register_recv_nolock(HIOCPFILE hObject);
    DWORD tcpio_register_send_nolock(HIOCPFILE hObject);
    DWORD tcpio_register_accept_nolock(HIOCPFILE hObject);
    DWORD tcpio_register_connect_nolock(HIOCPFILE hObject);

#ifdef __cplusplus
};
#endif

#endif